package mapTest;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

public class MapTest {
    public static void main(String[] args) {
        mapDevice();
    }


    public static void mapDevice() {

        BigDecimal bigDecimal = new BigDecimal(12.9);
        BigDecimal bigDecima2 = new BigDecimal(10.5);
        BigDecimal add = bigDecimal.add(bigDecima2);
        BigDecimal subtract = bigDecimal.subtract(bigDecima2);
        BigDecimal multiply = bigDecimal.multiply(bigDecima2);
        BigDecimal divide = bigDecimal.divide(bigDecima2);

        //创建一个HashMap  key为User类型  value为Device类型
        HashMap<User, Device> hashMap = new HashMap<>();
        //创建User对象通过构造器赋值
        User user = new User(18, "张三", "男");
        User user2 = new User(19, "分界线", "女");
        //创建Device类型的对象device通过set赋值
        Device device = new Device();
        device.setId(3L);
        device.setName("张三的电脑");
        device.setUserName("张三");
        Device device2 = new Device();
        device2.setId(2L);
        device2.setName("分界线的电脑");
        device2.setUserName("分界线");
        //往hashMap里面添加元素使用put方法
        hashMap.put(user, device);
        hashMap.put(user2, device2);
        //获取所有的key
        Set<User> users = hashMap.keySet();
        ArrayList<User> userList = new ArrayList<>();
        ArrayList<Device> deviceList = new ArrayList<>();
        //遍历hashMap
        for (User u : users) {
            //通过key获取value
            Device dev = hashMap.get(u);
            //往userList添加所有key
            userList.add(u);
            //往deviceList添加所有value
            deviceList.add(dev);
            System.out.println("设备Id" + dev.getId() + ",机器名" + dev.getName() + ",用户名" + dev.getUserName());

        }

        int count = 0;
        //遍历userList (key)
        for (int i = 0; i < userList.size(); i++) {
            //userList通过get(i)获取到每一个元素
            User user1 = userList.get(i);
            //定义了一个变量count来存放年纪的累加
            count = count + user1.getAge();
            //通过不同的get获取不同的属性
            System.out.println("用户名: " + user1.getName() + ",用户年龄: " + user1.getAge());
        }
        System.out.println(count);
        //deviceList (value)
        for (int i = 0; i < deviceList.size(); i++) {
            //deviceList里面放了设备使用设备类型Device来接收才能使用它的get属性
            Device device1 = deviceList.get(i);
            System.out.println("设备id: " + device1.getId() + ",设备名称: " + device1.getName() + ",用户名称: " + device1.getUserName());
        }


    }
}
